package com.net.oil.main.contract;

import com.net.oil.base.IBaseModel;
import com.net.oil.main.bean.BannerShopBean;
import com.net.oil.main.bean.ShopListBean;

import java.util.List;

/**
 * 作者：lch
 * 时间：2018/3/31:11:56
 * 邮箱：245850413@qq.com
 * 说明：
 */

public interface ShopContract {
    interface Model extends IBaseModel {
        /**
         * 获取商家列表
         * @param province  省
         * @param county    县/区
         * @param city  城市
         * @param name  商家名称模糊查询
         * @param lng   当前位置纬度
         * @param lat   当前位置经度
         * @param page  页码
         * @param rows  分页大小
         */
        void getShopList(String province,  String city, String county, String name, double lng, double lat, int page, int rows);

        /**
         * 获取banner商家
         */
        void getBannerShopList();
    }

    interface View {

        /**
         * 获取商家列表成功
         * @param shopListBean  商家列表数据
         */
        void getShopListSuccess(ShopListBean shopListBean);

        /**
         * 获取商家列表失败
         */
        void getShopListFailed();

        /**
         * 获取banner商家列表数据成功
         * @param shopBeans 商家banner数据
         */
        void getBannerShopListSuccess(List<BannerShopBean> shopBeans);

        /**
         * 获取banner商家列表数据失败
         */
        void getBannerShopListFailed();
    }

    interface Presenter {
        /**
         * 获取商家列表
         * @param province  省
         * @param county    县/区
         * @param city  城市
         * @param name  商家名称模糊查询
         * @param lng   当前位置纬度
         * @param lat   当前位置经度
         * @param page  页码
         * @param rows  分页大小
         * @return  Observable
         */
        void getShopList(String province,  String city, String county, String name, double lng, double lat, int page, int rows);

        /**
         * 获取商家列表成功
         * @param shopListBean  商家列表数据
         */
        void getShopListSuccess(ShopListBean shopListBean);

        /**
         * 获取商家列表失败
         */
        void getShopListFailed();

        /**
         * 获取banner商家
         */
        void getBannerShoList();

        /**
         * 获取banner商家列表数据成功
         * @param shopBeans 商家banner数据
         */
        void getBannerShopListSuccess(List<BannerShopBean> shopBeans);

        /**
         * 获取banner商家列表数据失败
         */
        void getBannerShopListFailed();

    }
}
